//package com.luli.config.linuxData;
//
///**
// * 陆离
// * 2024/12/25
// */
//import com.jcraft.jsch.*;
//
//import java.io.BufferedReader;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * https://www.doubao.com/thread/w2d15b6b13376c339
// */
//public class LinuxCpuUsageMonitorViaSSH {
//
//    public static List<LinuxData> getCpuUsages(List<LinuxParam> serverInfos) {
//        List<LinuxData> cpuUsages = new ArrayList<>();
//        for (LinuxParam serverInfo : serverInfos) {
//            try {
//                JSch jsch = new JSch();
//                Session session = jsch.getSession(serverInfo.user, serverInfo.host, serverInfo.port);
//                session.setPassword(serverInfo.password);
//                session.setConfig("StrictHostKeyChecking", "no");
//                session.connect();
//                Channel channel = session.openChannel("exec");
//
//                String cpuUsageStr = getLinuxAttribute(channel,session, "top -bn1 | grep \"Cpu(s)\" | awk '{print $2 + $4}'");
//                double cpuUsage = Double.parseDouble(cpuUsageStr);
//                String hostname = getLinuxAttribute(channel,session, "hostname");
//
//
//                LinuxData linuxData = new LinuxData();
//                linuxData.setCpuUsage(cpuUsage);
//                linuxData.setHostname(hostname);
//                cpuUsages.add(linuxData);
//                channel.disconnect();
//                session.disconnect();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        }
//        return cpuUsages;
//    }
//
//
//    private static String getLinuxAttribute( Channel channel,Session session, String instruction){
//        try {
//            channel = session.openChannel("exec");
//            ((ChannelExec) channel).setCommand(instruction);
//            channel.connect();
//
//            InputStream in = channel.getInputStream();
//            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//            String linuxAttribute = reader.readLine();
//            return linuxAttribute;
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//    public static void main(String[] args) {
//        List<LinuxParam> serverInfos = new ArrayList<>();
//        serverInfos.add(new LinuxParam("192.168.175.135", 22, "root", "lzp+19991128"));
//        serverInfos.add(new LinuxParam("192.168.175.132", 22, "root", "root123"));
//
//        List<LinuxData> cpuUsages = getCpuUsages(serverInfos);
//        for (int i = 0; i < cpuUsages.size(); i++) {
//            System.out.println("服务器 " + serverInfos.get(i).host + " 的CPU使用率为: " + cpuUsages.get(i).getCpuUsage() + "%");
//        }
//    }
//}
